<?php
App::uses('AppController', 'Controller');

class ResenhasController extends AppController {


	public function lista() {
		if(!$this->admin()){
			throw new MethodNotAllowedException(__('Opção inválida'));
		}
		$this->Resenha->recursive = 0;
		$this->set('resenhas', $this->paginate());
		$this->render('index');
	}
	
	public function minhasResenhas(){
		$this->Resenha->recursive = 0;
		$this->set('resenhas', $this->paginate(array('alunos_id'=>$this->usuarioAtual['id_alunos'])));
	}
	
	public function aprovarResenha($id = null){
		if(!$this->admin()){
			throw new MethodNotAllowedException(__('Opção inválida'));
		}
		if($id != null){
			$dado = array('Resenha' => array('aprovada' => 1));
			$this->Resenha->id = $id;
				if ($this->Resenha->save($dado)) {
					$this->Session->setFlash(__('Resenha foi aprovada'));
				} else {
					$this->Session->setFlash(__('Resenha não foi aprovada. Por favor tente novamente.'));
				}			
		}
		$this->set('resenhas', $this->paginate(array('aprovada'=>0)));
		$this->render('aprovar');
	}


	public function info($id = null) {
		$this->Resenha->id = $id;
		if (!$this->Resenha->exists()) {
			throw new NotFoundException(__('Resenha inválido'));
		}
		$this->set('resenha', $this->Resenha->read(null, $id));
		$this->render('view');
	}

	public function novo($idLivro) {
		if ($this->request->is('post')) {
			$this->Resenha->create();
			$this->request->data['Resenha']['aprovada'] = 0;
			$this->request->data['Resenha']['alunos_id'] = $this->usuarioAtual['id_alunos'];
			if ($this->Resenha->save($this->request->data)) {
				$this->Session->setFlash(__('Resenha salva com sucesso! É necessário aguardar aprovação da resenha para publicá-la'));
				$this->redirect('/');
			} else {
				$this->Session->setFlash(__('Resenha Não pode ser salvo. Por favor tente novamente'));
			}
		}
		$alunos = $this->Resenha->Aluno->find('list');
		$livros = $this->Resenha->Livro->find('list');
		$this->set(compact('alunos', 'livros', 'idLivro'));
	$this->render('add');
	}

	public function editar($id = null) {
		if(!$this->admin()){
			throw new MethodNotAllowedException(__('Opção inválida'));
		}
		// TODO Fazer voltar para a página correta
		$this->Resenha->id = $id;
		if (!$this->Resenha->exists()) {
			throw new NotFoundException(__('Resenha inválido'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Resenha->save($this->request->data)) {
				$this->Session->setFlash(__('Resenha foi salvo'));
				$this->redirect(array('action' => 'lista'));
			} else {
				$this->Session->setFlash(__('Resenha não foi salvo. Por favor tente novamente.'));
			}
		} else {
			$this->request->data = $this->Resenha->read(null, $id);
		}
		$alunos = $this->Resenha->Aluno->find('list');
		$livros = $this->Resenha->Livro->find('list');
		$this->set(compact('alunos', 'livros'));
	$this->render('edit');
	}

	public function apagar($id = null) {
		if(!$this->admin()){
			throw new MethodNotAllowedException(__('Opção inválida'));
		}
		if (!$this->request->is('post')) {
			throw new MethodNotAllowedException();
		}
		$this->Resenha->id = $id;
		if (!$this->Resenha->exists()) {
			throw new NotFoundException(__('Resenha inválido'));
		}
		if ($this->Resenha->delete()) {
			$this->Session->setFlash(__('Resenha excluído'));
			$this->redirect(array('action'=>'lista'));
		}
		$this->Session->setFlash(__('Resenha não foi excluído'));
		$this->redirect(array('action' => 'lista'));
	}
}
